// 注意：该文件由脚本自动生成🎉🎉🎉
/**
 * @Description: 状态管理
 * @Author bianpengfei
 * @create 2022/11/24 23:31
 */
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-plugin-persistedstate'
import { requireAllModule } from 'sf-utils2'
import { basename } from 'path'

export const pinia = createPinia()

/**
 * 自动化 获取当前的目录下除了 index.js 其他的js文件，自动转成对象
 * 返回结果普通对象
 * {
 *   useAppStore: function() {}
 * }
 */
const modules = requireAllModule({
  requireContext: require.context('./', true, /\.js$/),
  exclude: ['./index.js']
}).reduce((pre, [v, k]) => ({ ...pre, [basename(k, '.js')]: v?.default }), {})

export default {
  install(app) {
    app.use(pinia)
    pinia.use(
      createPersistedState({
        storage: window.localStorage
      })
    )
  },
  ...modules
}
